/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;

import connection.Connection;
import dao.EvaluadorJpaController;
import dao.ExperienciaLaboralJpaController;
import dao.exceptions.PreexistingEntityException;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.html.HtmlDataTable;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManagerFactory;
import modelo.Evaluador;
import modelo.ExperienciaLaboral;
import modelo.ExperienciaLaboralPK;

/**
 *
 * @author Fabian
 */

@ManagedBean(name="ControladorExpLaboral")
@SessionScoped
public class ControladorExperienciaLaboral {
    
    
    private List<ExperienciaLaboral> experiencia;
    private HtmlDataTable tabla;
    public EntityManagerFactory factory;
    private Evaluador evaluador;
    private ExperienciaLaboral expLaboral;
    private ExperienciaLaboralPK pk;
    private String txtCorreojefe;
    private Date txtFechaInicio;
    private Date txtFechaFin;
    private String txtTelefonoEmpresa;
    private String txtTelefonoJefe;
    private String txtJefe;
    private String txtCargo;
    private String txtEmpresa;

    public ControladorExperienciaLaboral(){}

    public List<ExperienciaLaboral> getExperiencia() {
        return experiencia;
    }

    public void setExperiencia(List<ExperienciaLaboral> experiencia) {
        this.experiencia = experiencia;
    }

    public HtmlDataTable getTabla() {
        return tabla;
    }

    public void setTabla(HtmlDataTable tabla) {
        this.tabla = tabla;
    }

    public Evaluador getEvaluador() {
        return evaluador;
    }

    public void setEvaluador(Evaluador evaluador) {
        this.evaluador = evaluador;
    }

    public ExperienciaLaboral getExpLaboral() {
        return expLaboral;
    }

    public void setExpLaboral(ExperienciaLaboral expLaboral) {
        this.expLaboral = expLaboral;
    }

    public ExperienciaLaboralPK getPk() {
        return pk;
    }

    public void setPk(ExperienciaLaboralPK pk) {
        this.pk = pk;
    }
    
    
    
    public void cargarExperiencia(){
        
    factory=Connection.getEmf();  
    ExperienciaLaboralJpaController daoExperiencia= new ExperienciaLaboralJpaController(factory);
    EvaluadorJpaController daoEvaluador= new EvaluadorJpaController(factory);
    Evaluador e= (Evaluador)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ControladorEvaluador");
    String Aux= e.getCedula();
    setEvaluador(daoEvaluador.findEvaluador(Aux));
    List<ExperienciaLaboral> evaluador= daoExperiencia.findExperienciaLaboralEntities();
    List<ExperienciaLaboral> Final=null;
    for(int i=0; i<evaluador.size();i++){
    
        if(evaluador.get(i).getEvaluador().getCedula().equals(Aux)){
        
        Final.add(evaluador.get(i));
        }
    }
    setExperiencia(Final);
    
    }
    
    public void crearExperiencia(){
    factory=Connection.getEmf();  
    ExperienciaLaboralJpaController daoExperiencia= new ExperienciaLaboralJpaController(factory);
    ExperienciaLaboral nueva = null;
    ExperienciaLaboralPK PK = null;
    PK.setCargo(txtCargo);
    PK.setCedulaEvaluador(getEvaluador().getCedula());
    PK.setEmpresa(txtEmpresa);
    nueva.setExperienciaLaboralPK(PK);
    nueva.setEvaluador(getEvaluador());
    nueva.setCorreoJefe(txtCorreojefe);
    nueva.setFechaInicio(txtFechaInicio);
    nueva.setFechaFin(txtFechaFin);
    nueva.setTelefonoEmpresa(txtTelefonoEmpresa);
    nueva.setTelefonoJefe(txtTelefonoJefe);
    nueva.setJefe(txtJefe);
    
    
        try {
            daoExperiencia.create(nueva);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(ControladorExperienciaLaboral.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ControladorExperienciaLaboral.class.getName()).log(Level.SEVERE, null, ex);
        }
    
    
    }
    
    public void editarExperiencia(){
        
        ExperienciaLaboralPK r=getPk();
        ExperienciaLaboral reemplazo= getExpLaboral();
        ExperienciaLaboralJpaController daoExperiencia= new ExperienciaLaboralJpaController(factory);
        ExperienciaLaboral cambio=daoExperiencia.findExperienciaLaboral(r);
        cambio.setCorreoJefe(reemplazo.getCorreoJefe());
        cambio.setFechaFin(reemplazo.getFechaFin());
        cambio.setFechaInicio(reemplazo.getFechaInicio());
        cambio.setJefe(reemplazo.getJefe());
        cambio.setTelefonoEmpresa(reemplazo.getTelefonoEmpresa());
        cambio.setTelefonoJefe(reemplazo.getTelefonoJefe());
    
    
    }
    
}
